﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dream2
{
    class Program
    {
        static void Main(string[] args)
        {
            /*        1、定义一个方法，求一个整数数组中的最大值，最小值，和，平均数。如果是一个方法只能有一个返回值，
             *        那只能每一个都得定义一个方法来实现，不过有了ref和out这实现起来就方便多了。
             参考步骤：
             定义一个一维数组，数组中存放一些数据（控制台输入）。
             定义几个变量：max、min、sum、avg

             定义一个方法，方法返回数组元素之和,方法形参有max min avg。

             请用ref和out各做一遍，并在注释中，描述他们的区别。*/
            int[] arr = new int[5];
            int sum = 0;
            float avg = 0;
            int max = 0;
            int min = arr[0];
            Sum(ref sum, ref avg, ref max, ref min, ref arr);
            Sun(out sum, out avg, out max, out min, out arr);
        }
        static void Sum(ref int sum, ref float avg, ref int max, ref int min, ref int[] arr)
        {

            for (int i = 0; i < arr.Length; i++)
            {
                Console.WriteLine("请输入第" + (i + 1) + "位数");
                arr[i] = int.Parse(Console.ReadLine());
                max = arr[0];
                min = arr[0];
                if (max < arr[i])
                {
                    max = arr[i];
                }
                if (min > arr[i])
                {
                    min = arr[i];
                }
                sum += arr[i];
                avg = (float)sum / arr.Length;
            }
          
        Console.WriteLine("ref:元素之和{0}，平均值{1}，最大值{2}，最小值{3}", sum, avg, max, min);
        }
        static void Sun(out int sum, out float avg, out int max, out int min, out int[] arr)
        {
             arr = new int[5];
            sum = 0;
            avg = 0;
            max = 0;
            min = 0;
            for (int i = 0; i < arr.Length; i++)
            {
                Console.WriteLine("请输入第" + (i + 1) + "位数");
                arr[i] = int.Parse(Console.ReadLine());
                min = arr[0];
                if (max < arr[i])
                {
                    max = arr[i];
                }
                if (min > arr[i])
                {
                    min = arr[i];
                }
                sum += arr[i];
                avg = (float)sum / arr.Length;
            }
         
            Console.WriteLine("out:元素之和{0}，平均值{1}，最大值{2}，最小值{3}", sum, avg, max, min);

        }
    }
}
    
            

        
    

